1. Field of the Invention
The present invention relates generally to computing systems and, more specifically, to a computing device that enables software applications to run almost immediately after the device is started.
2. Description of the Related Art
When a computer is powered-up or otherwise started (or re-started), application programs generally cannot execute immediately. Rather, there is some delay during which the computer performs a process generally referred to as “booting” or “booting up.” “Booting” is a term that has largely supplanted the original term, “bootstrapping,” which was an allusion to the English expression “to pull oneself up by one's bootstraps.” When a computer boots, a lower-level program, i.e., a sequence of instructions or code, which is capable of executing almost immediately after the computer is started, activates a higher-level program that is not otherwise capable of activating itself. In a traditional boot sequence, the processor executes some instructions that are embodied in a logic layer close to the hardware layer, such as in read-only memory (ROM), which in turn causes some additional instructions to be loaded from a disk drive or other secondary storage into random-access memory (RAM), where the processor begins executing them. In many computer architectures, the code stored in ROM is commonly referred to as the Basic Input/Output System or BIOS. Some of the instructions executed during boot-up cause the computer to be configured and prepared to execute application programs. “Application program” refers to high-level software, generally of the type with which the user interacts in some manner. The boot sequence is generally deemed completed when control is passed to the user interface layer of the operating system, and the computer allows a user to run application programs or log in.
There are a number of operating systems that are commercially available or otherwise known, but MICROSOFT WINDOWS is by far the most popular operating system in use today. However, while WINDOWS offers many advantages, it typically involves an elaborate boot sequence and, consequently, is often perceived as slow to boot up. After the processor executes BIOS, control is transferred to a partition loader, which locates the operating system and enables it to be loaded. In the case of WINDOWS XP, for example, a system downloading file then causes the operating system to be loaded in four phases: initial boot loader phase; operating system selection; hardware detection; and configuration selection. In the final phases, a device driver switches the screen to graphics mode, the WINDOWS XP desktop appears on the screen, and the user is invited to log on. Depending upon processor speed, memory, configurations, and other factors, the WINDOWS XP boot process can take between about 30 seconds and three or four minutes. Yet, despite being slow to boot up in comparison with other operating systems, the various versions of WINDOWS (e.g., WINDOWS XP, WINDOWS 2000, etc.) constitute perhaps the most popular family of operating systems in the world for desktop and laptop computers and servers, with a wealth of commercially available application programs having been written for them by various parties. Most computer users are familiar with and comfortable with WINDOWS. Thus, despite the slowness of its boot sequence, WINDOWS remains the operating system of choice for most desktop, laptop and similar computing devices.
In some instances, it is important that a user be able to ready a computing device for operation under the control of application programs without significant delay. For example, the amount of time that computing devices that control certain critical physical systems take to become ready for operation after they are powered up or otherwise started should be minimized. While in some instances such computing devices may be embedded in the systems they control (and thus control the physical systems through efficient hardware-level interaction), in other instances such computing devices may be ordinary desktop or laptop computers that control the physical systems through application programs and external bus or wireless interfaces. The problem is not limited to controlling physical systems but rather includes any instance in which an application program needs to be immediately ready for use. In any instance in which an computing device relies upon an application program to perform critical tasks, several minutes of boot-up delay can be detrimental.
Some operating systems, including those of the UNIX family, such as LINUX, generally boot up faster than WINDOWS in instances in which they are operating on comparably configured computing systems. However, LINUX operating systems are considered by some to be more suitable for network server computers, engineering design computers, industrial computers, etc., than for ordinary home and business computers because they are not as user-friendly or because they allow greater access to internal functions that can be misused. For these reasons, there are far more commercially available application programs for WINDOWS systems than LINUX systems.
The contrast between WINDOWS and LINUX is intended only as an example, as each of the operating systems that is commercially available or otherwise known has its own advantages and disadvantages in comparison with the others. Some boot up faster than others on comparably configured computing systems. Some have more features than others or have a greater selection of application programs available for them.
Accordingly, it would be desirable to provide a method and system to enable application programs to begin execution with minimal boot-up delay. It is to such a method and system that the present invention is primarily directed.